package com.hicorp.segment.service;

import com.hicorp.segment.utils.ResultBean;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface BaseInterface {

    /**
     * 查询所有
     * @param tableName 表名
     * @return 返还查询的数据
     */
    ResultBean<List<?>> queryAll(String tableName);

    /**
     * 新增单条数据
     * @param tableName 表名
     * @param record 新增的数据内容
     * @return 是否新增成功
     */
    ResultBean<Object> insert(String tableName, Object record);

    /**
     * 批量新增
     * @param tableName 表名
     * @param records 批量新增的数据
     * @return 是否新增成功
     */
    ResultBean<List<?>> insertList(String tableName, List<?> records);

    /**
     * 编辑单条记录
     * @param tableName 表名
     * @param id 被编辑的数据的id
     * @param record 被编辑的数据类容
     * @return 是否编辑成功
     */
    ResultBean<Object> update(String tableName, Long id, Object record);

    // 查询所有
    Object queryInfo(String tableName);

    // 数据变更
    Object changeRecord(String tableName, String methodName, Object record);

    // 批量删除
    Object batchDeleteRecord(String tableName, List<Long> ids);

    // 按单个字段搜索
    Object selectRecords(String tableName, String fieldName, String fieldValue);
}
